OpenWrt19.07自定义型号笔记(MT7688) |
您所在的位置:网站首页 › openwrt 添加路由 › OpenWrt19.07自定义型号笔记(MT7688) |
文章目录
写在前面说明硬件概况
openwrt下载openwrt编译的一般过程
自定义型号添加设备信息添加设备树dts修改rootfs
写在后面最终结果
写在前面
说明
为了方便调试MT7688开发板,有时需要将自己喜欢的名字加入openwrt的选择列表,这样编译后在openwrt的管理界面显示的就是自己定义的名字了。本文参照Openwrt中某些开发版的配置文件写了自己的配置,以下均为笔记或个人理解。 硬件概况 MT7688128M RAM16M SPI Flash串口0用作调试启用以太网口0(WAN)启用WIFI注意:硬件情况不同,设备树dts文件(用于配置linux内核)的写法也不同。若不是MT7688芯片修改的文件也就略有不同。 openwrt下载https://github.com/openwrt/openwrt.git 注意:本文仅适用于19.07版本,下载时需要下载19.07分支,其它分支操作可能略有不同 openwrt编译的一般过程 下载源码进入源码目录执行./scripts/feeds update -a更新feed执行./scripts/feeds update -a安装feed执行make menuconfig进行配置 选择编译的目标设备选择编译的packages配置其它编译选项 执行make编译在 源码目录/bin 下找到需要的文件给设备升级(需要提前刷好u-boot或安装旧版本openwrt强制升级)可能需要的问题: 网络不通,XX下载失败。openwrt本身需要在编译过程中下载各种源代码,如果网络不好将导致编译极其缓慢,严重时会编译失败。若因为下载失败导致编译失败可手动到各大镜像站下载对应的文件放到源码目录/dl中再执行make编译。缺少某某软件,提示 XX not found。根据提示安装上对应软件即可。对于ubuntu及其衍生版,至少应当安装build-essential软件包 自定义型号自定义型号主要包含以下3个方面: 添加设备信息到openwrt。添加设备树dts配置硬件。配置rootfs(即修改openwrt的base-files目录),一般只修改etc目录中的配置文件。注意:以下添加的设备型号名称为HYH-MT7688,厂商名为HYH 添加设备信息 修改文件路径: 源码目录/target/linux/ramips/image/mt76x8.mk添加设备信息,模板如下(不代表所有选项,具体参考其它设备的配置信息):define Device/设备型号名称 DTS := DTS文件名(可自定义,但一般与设备型号一致) IMAGES :=sysupgrade.bin IMAGE_SIZE := 固件大小 DEVICE_TITLE := 设备型号信息(可自定义,但一般与设备型号一致) DEVICE_PACKAGES := 设备需要的packages endef TARGET_DEVICES += 设备型号名称 修改示例:修改后就可以在make menuconfig中选择自己添加的设备,但为了编译正确,还需要添加dts文件,修改rootfs。 目录:源码目录/target/linux/ramips/dts/,文件名:DTS文件名.dts 对于MT7688,dts设备树包含的文件为mt7628an.dtsi 具体写法参考其它设备的设备树写法。示例: /dts-v1/; #include "mt7628an.dtsi" #include #include / { compatible = "HYH,HYH-MT7688", "mediatek,mt7628an-soc"; model = "HYH-MT7688"; chosen { bootargs = "console=ttyS0,115200"; }; memory@0 { device_type = "memory"; reg = ; }; wgpio: gpio-wifi { compatible = "mediatek,gpio-wifi"; #address-cells = ; #size-cells = ; gpio-controller; #gpio-cells = ; }; }; &pinctrl { state_default: pinctrl0 { gpio { ralink,group = "gpio"; ralink,function = "gpio"; }; perst { ralink,group = "perst"; ralink,function = "gpio"; }; refclk { ralink,group = "refclk"; ralink,function = "gpio"; }; i2s { ralink,group = "i2s"; ralink,function = "gpio"; }; spis { ralink,group = "spis"; ralink,function = "gpio"; }; wled_kn { ralink,group = "wled_kn"; ralink,function = "gpio"; }; wled_an { ralink,group = "wled_an"; ralink,function = "wled_an"; }; wdt { ralink,group = "wdt"; ralink,function = "gpio"; }; }; }; &uart1 { status = "okay"; }; &uart2 { status = "okay"; }; ðernet { mtd-mac-address = ; }; &wmac { status = "okay"; }; &spi0 { status = "okay"; pinctrl-names = "default"; pinctrl-0 = , ; m25p80@0 { compatible = "jedec,spi-nor"; reg = ; spi-max-frequency = ; partitions { compatible = "fixed-partitions"; #address-cells = ; #size-cells = ; partition@0 { label = "u-boot"; reg = ; read-only; }; partition@30000 { label = "u-boot-env"; reg = ; }; factory: partition@40000 { label = "factory"; reg = ; read-only; }; partition@50000 { compatible = "denx,uimage"; label = "firmware"; reg = ; }; }; }; spidev@1 { #address-cells = ; #size-cells = ; compatible = "linux,spidev"; reg = ; spi-max-frequency = ; }; };相对关键的参数: model=,这个参数直接控制openwrt显示的型号bootargs=,这个参数控制linux内核的启动参数partitions,这个参数直接控制SPI Flash的分区,需要根据SPI Flash的大小进行调整memory,这个参数配置内存的大小。 修改rootfs 修改文件路径: 源码目录/target/linux/ramips/base-files/为了调整网络,一般修改etc/board.d/02_network 写在后面自定义完型号后就可以开发openwrt了。 可以将imagebuilder、SDK 和toolchain都选上,这样后续就不需要再编译openwrt源码即可开发软件。 同时,为避免避免后续在openwrt源码中编译需要的内核模块(内核模块要与内核一致,无法单独编译),应当在Global build settings把在kernel package和target default package也选上。 为了使用中文,应当在LuCi->Modules->Translation->chinese选上 编译结果: 后来发现板子是64M RAM,修改了设备树中的memory成功进入openwrt。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |